import { ref, computed } from 'vue'
import { defineStore } from 'pinia'

// 定义一个仓库，第一个参数是仓库名字，可以自己定义；回调函数定义了仓库包含的内容，方法有什么；必须将定义的内容return出去才能使用
export const useTasklistStore = defineStore('tasklist', () => {
  // 定义任务列表
  var tasklist = ref([]);

// 统计未完成的任务数量
  var unFinishedCount = computed(()=>{
    return tasklist.value.filter((item)=>!item.status).length
  })



  // 定义新增任务的方法
  var addTask = (payload) => {
    tasklist.value.push({ id: tasklist.value.length + 1, name: payload, status: false })
  }
  // 更改任务状态
  var changeStatus = (payload) => {
    var task = tasklist.value.find((item) => {
      return item.id == payload;
    })
    if (task) {
      task.status = !task.status
    }
  }
// 删除任务
var deleteTask=(payload)=>{
  var index = tasklist.value.findIndex((item)=>{
    return item.id == payload
  })
  if(index !=-1){
    tasklist.value.splice(index,1)
  }
}
  return {
    tasklist,
    unFinishedCount,
    addTask,
    changeStatus,
    deleteTask
  }
})
